package com.boss.thirteen.service;

import com.boss.common.entity.PageDTO;
import com.boss.framework.dto.PaginationDTO;
import com.boss.sys.ca.user.dto.UserDTO;
import com.boss.thirteen.entity.ThirteenAgencyVerify;
import com.singularsys.jep.JepException;

import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;

public interface IThirteenSalaryEndService {

    /**
     * 月结操作
     */
    Map<String,String> saveMonthEnd( String province, List<ThirteenAgencyVerify> agencyVerifyLists) throws InvocationTargetException, IllegalAccessException, ParseException, NoSuchMethodException, JepException;


    /**
     * 撤销月结前校验
     * @param agencyIds
     * @param year
     * @return
     */
    Map<String, Object> checkRevokeMonthEnd(UserDTO userDTO,List<String> agencyIds, String year);

    /**
     * 撤销月结
     * @param agencyVerifyLists
     * @return
     */
    void revokeMonthEnd(String province,List<ThirteenAgencyVerify> agencyVerifyLists);


    /**
     * 获取未月结的数据-分页
     *
     * @param queryParam
     * @return
     */
    PageDTO<Map<String,Object>> getSalaryMonthEndPage(PaginationDTO paginationDTO,Map<String, Object> queryParam, List<String> childrenIds);

    /**
     * 获取月结的数据-分页
     *
     * @param queryParam
     * @return
     */
    PageDTO<Map<String,Object>> getSalaryMonthHistoryPage(PaginationDTO paginationDTO,Map<String, Object> queryParam, List<String> childrenIds);


}
